<?php
class RequireOneValidator extends CValidator {

	public $errorAttributes = null;

	protected function validateAttribute($object, $attribute) {
		//if (is_string($attributes))
		$attributes = preg_split('/[\s\+]+/', $this->attributes[0], -1, PREG_SPLIT_NO_EMPTY);

		foreach ($attributes as $attribute) {
			$value = $object->$attribute;
			if (!$this->isEmpty($value, true)) {
				return;
			}
		}
		$message='';
		foreach ($attributes as $attribute) {
			$message .= $object->getAttributeLabel($attribute) . " ";
		}
		$message = substr($message, 0, -1);
		$message = $this->message !== null ? $this->message : "($message) 至少一个不能为空";
		$errorAttributes = $this->errorAttributes;
		if (empty($errorAttributes)) {
			$errorAttributes = $attributes;
		}
		foreach ($errorAttributes as $attribute) {
			$this->addError($object, $attribute, $message);
		}
	}
}
